
var http = require("http");
var https = require("https");

// console.log(http);

const hostname = "localhost";
const port = "3000";

// http 的 createServer() 方法创建一个新的 HTTP 服务器并返回它。
// createServer() 可以接受一个回调函数, 每当服务器接收到来自客户端的请求时都会执行一次
// 回调函数中有两个参数(形参) request response
// request(对象) 接收客户端传递的信息
// response(对象) 配置服务端响应的相关信息
var server = http.createServer(function (req, res) {
    console.log("接收到来自客户端的请求");

    // request 请求相关(接收客户端传递的信息)
    // console.log(req);
    console.log(req.method); // 请求方式
    console.log(req.url); // 请求的地址  => url模块
    console.log(req.headers); // 请求头


    // response  相关
    // res.statusCode = 200;  // 设置响应的状态码
    // res.setHeader("Content-Type", "text/plain;charset=utf-8"); // 设置响应头
    // 简写:
    res.writeHead(200, {
        "Content-Type": "text/html;charset=utf-8",
        a: 1,
        b: 2,
    })

    /* 
        text/plain  纯文本
        text/html  
        text/css  
        text/javascript  
        text/json
        image/png
        image/jpg
        image/jpeg
        image/gif
        application/octet-stream
    */

    res.write("你好星期二,");   // 服务端接收请求,正在处理,此时有部分数据可用
    res.write("<b>今天天气不错!</b>");   // 服务端接收请求,正在处理,此时有部分数据可用

    res.end();  // 请求处理结束,返回响应的结果 (并关闭响应)   => res.end() 不建议重复调用
});


// 服务器设置为监听指定的端口和主机名。 当服务器就绪时，回调函数被调用，在这种情况下通知我们服务器正在运行。
server.listen(port, hostname, function () {
    console.log("服务器启动成功=> http://localhost:3000");
})

